// Get the users handle from the parameters passed to the door, remembering
// that the users handle MAY have spaces in it..
N_ND->User.CallData.Handle[0]=0;
for (loop=2;loop<argc;loop++)
{
if (loop!=2) strcat(N_ND->User.CallData.Handle," ");
strcat(N_ND->User.CallData.Handle,argv[loop]);
}
// Ok, we need to see if new users are allowed
// a) at this time
// b) on this node
// *C* add time check..
if (N_ND->NodeSettings.AllowNewUsers==FALSE)
{
DOOR_DisplaySpecialScreen(SSCREEN_NONEWAT_ALL);
}
else
{
// display the screen "NoNewAt_ThisTime" if user is not allowed at this time.
// display the screen "NoNewAt_BAUD" if users modem is too slow..
sprintf(tmpstr,"NoNewAt_%s",N_ND->ConnectBaud);
if (DOOR_DisplaySpecialScreen(tmpstr))
{
DOOR_HangUp();
N_ND->OnlineStatus=OS_OFFLINE;
}
else
{
while (N_ND->OnlineStatus==OS_ONLINE && !Done)
{
DOOR_DisplaySpecialScreen("GuestLogin");
sprintf(tmpstr,ANSI_RESET ANSI_CLS ANSI_FG_CYAN "You now need to enter a password to use on this system, make sure it is at\r\n"
"least %d character%s long, preferably with some numbers in it somewhere\r\n",BBSGlobal->MinPasswordLength,BBSGlobal->MinPasswordLength == 1 ? "" : "s");
DOOR_WriteText(tmpstr);
if (GetOption("Password To Use",N_ND->User.CallData.Password,BBSGlobal->MinPasswordLength,LEN_PASSWORD,TRUE))
{
DOOR_WriteText(ANSI_FG_CYAN"Please Enter Your Real Name\r\n");
if (GetOption("Real Name",N_ND->User.CallData.RealName,3,LEN_REALNAME,FALSE))
{
DOOR_WriteText(ANSI_FG_CYAN "If you are in any scene groups, then enter the name of them now\r\n"
"(Note: This is used by WHO doors and bulletins to display a bit of\r\n"
"Information about you)\r\n");
if (GetOption("Scene Group",N_ND->User.CallData.Group,2,LEN_GROUP,FALSE))
{
DOOR_WriteText(ANSI_FG_CYAN "Enter the name of the town/city you are calling from\r\n");
if (GetOption("City",N_ND->User.CallData.GeoLocation,3,LEN_GEOLOCATION,FALSE))
{
DOOR_WriteText(ANSI_FG_CYAN "Enter The Country you are calling from\r\n");
if (GetOption("Country",N_ND->User.CallData.Country,2,LEN_COUNTRY,FALSE))
{
DOOR_WriteText(ANSI_FG_CYAN "Please enter your voice phone number\r\n");
if (GetOption("Phone Number",N_ND->User.CallData.PhoneNumber,5,LEN_PHONENUMBER,FALSE))
{
DOOR_WriteText(ANSI_FG_CYAN "Please enter details of all your computers\r\n");
if (GetOption("Computer Type",N_ND->User.CallData.ComputerType,2,LEN_COMPUTERTYPE,FALSE))